隨著學習 DevOps 的人越來越多,到底該如何進入 DevOps 世界 ? 本次鐵人賽想透過筆者自身經驗,整理出一套好上手的學習方式,以雲端為基礎,藉此免去建構環境的麻煩,並以 Lab 形式提供手把手的教學,實際體會建置 DevOps 流水線過程,希望讀者能透過本文,透過自身對軟體開發的實際需求,抽換學到的各式元件,打造屬於自己的 Study Lab !!
軟體生命週期分為多個階段,包含開發、測試、部屬等等,在每個階段都有專門負責的部門,要如何讓各部門人員能夠緊密協同作業,就需要可遵循的工作架構,而 DevOps 就是一種軟體開發架構,負責讓開發者 (Dev) 和維運人員 (Ops) 合作之間更順暢,不僅能加速整個開發過程,也能有效降低協作成本。
DevOps 目標 : 讓各階段的人員只專注於自己工作情況下也能緊密合作
具體的學習流程可以參考 DevOps Roadmap。要能熟悉使用 DevOps 各式應用,首先要了解開發者和維運人員各自工作內容,有了一定基礎後,就能體會 DevOps 在其中扮演的角色,這裡簡單整理出一些學習技能。
開發者重視的是建立出專案的能力(具現化系),不管是基本的 Coding 能力、開發框架、版控系統都是必備的,這邊列舉了一些常使用到的軟體開發技術。
維運人員要能夠確保服務能夠正常運行,所以會需要 Infrastructure 的構建以及維護技術。
若是帶到整個軟體生命週期,兩個職位需要開始相互合作,各自的盲點也就會相繼浮現,如開發者不知道如何將專案帶入生產環境,維運人員不知道如何準確提供專案所需環境,為了消除開發者與維運人員的鴻溝,就需要使用到 DevOps 工具,最重要的如下。
本次系列文章將分為三個階段
這裡準備了會使用的所有程式碼。
一開始會利用 GCP 及 Docker 建置出基本服務,接著透過 GKE、GitLab CI、ArgoCD 打造 DevOps Pipeline ,最後用實際 NodeJS 專案,以開發者及維運人員的角度出發,了解當專案帶入 DevOps 架構下的工作流程。